╘O PUT THE NUMBER 123, FOR EXAMPLE, INTO BYTE 20000 TYPE IN DIRECT MODE (WITHOUT LINE NUMBER) P╧20000,123
╘O SEE WHAT IS IN, FOR EXAMPLE, 20000 TYPE ?P┼(20000)
╘O SEE WHAT IS IN SEVERAL BYTES HERE IS A ┬┴╙╔├ PROGRAM TO DO THAT:
10 INPUT A:IFA=999T╚END
20 ?P┼(A);:G╧10
╘O ENTER 0 TO 255 INTO MEMORY STARTING AT 20000 TYPE
F╧I=0TO255:P╧20000+I,I:N┼
╘O SEE WHAT IS IN BYTES 20005 TO 20020 TYPE
F╧I=20005 TO 20020:?I;P┼(I):N┼
╘O MOVE A WHOLE BLOCK, FOR EXAMPLE 20010 TO 20100, 2 BYTES UP, TYPE
F╧I=20100TO20010STEP-1:P╧I+2,P┼(I):N┼
╘O MOVE A WHOLE BLOCK, FOR EXAMPLE 20012 TO 20102, DOWN 2 BYTES TYPE
F╧I=20012TO20102:P╧I-2,P┼(I):N┼
╚ERE IS AN EXAMPLE PROGRAM TO ENTER DATA AND/OR TEXT INTO MEMORY STARTING AT 20000. ╬OTE THAT PRINTERS DIFFER; THIS WORKS FOR THE PRINTER ╔ USE:
║JU0
0 REM "INTO MEMORY" BY ╩OE ╤UITTNER
10 PRINT C╚(144)C╚(14)
20 POKE 56,78:CLR :REM PROTECT 20K+
100 PRINT " ═┼╬╒:
101 PRINT " 1. ╘YPE INTO MEMORY 1000
102 PRINT " 2. ╙AVE MEMORY TO DISK 3000
103 PRINT " 3. ╠OAD MEMORY FROM DISK 8000
104 PRINT " 4. ╥EAD MEMORY 2000
199 :PRINT " ╫╚╔├╚? ";:GOSUB997: PRINT G$
201 IF G$="1"THEN 1000
202 IF G$="2"THEN 3000
203 IF G$="3"THEN 8000
204 IF G$="4"THEN 2000
299 GOTO 199
997: POKE 204,0:GET G$:IF G$=""THEN 997
998 IF PEEK(207) THEN 998
999 POKE 204,1:RETURN
1000 PRINT "╘O END INPUT HOLD DOWN THE ├╘╥╠ KEY WHILE TYPING E FOR END
1001 PRINT "╘O ENTER AN ┴╙├╔╔ NUMBER PRESS THE F1 KEY.
1010 N=0:M=20000-1:H$=""
1012 :GO╙ 997:G=ASC(G$+C╚(0))
1015 IFG=5T╚?:?N"ITEMS, LAST M IS"M:P╧ M+1,255:GO╙997:G╧100
1016 IF G=20 THEN M=M-1: N=N-1: A=PEEK(211):IFA>0T╚POKE 211,A-1
1017 IF G=20 THEN GOTO 1012
1018 IF G=133 THEN 1030:REM F1 KEY
1020 :N=N+1:M=M+1:POKE M,G:PRINT G$;: GOTO 1012
1030 :PRINT :INPUT" ┴╙├╔╔ ╬UMBER (0-255)";G
1032 G$="":?"["+MID$(ST╥(G),2)+"]";: GOTO 1020
2000 REM " ╥┼┴─ ═┼═╧╥┘
2002 GOSUB 4000
2010 FOR I=20000TO256*160-1:A=PEEK(I): IF A=255 THEN 2030
2011 IFA=13 THEN PRINT: IF P THEN P╥7:GOTO 2019
2012 IF A>31 AND A<91 THEN GOSUB2020: GOTO2019
2013 IF A>192 AND A<219 THEN GOSUB2020: GOTO2019
2018 IF P THEN PRINT#5,C╚(A);
2019 :NEXT:GOTO2030
2020 :PRINT C╚(A);:IF P THEN PRINT#7, C╚(A);
2022 RETURN
2030 :PRINT:IF P THEN PRINT#7
2032 GOSUB 997:GOTO 100
3000 REM " SAVE TO DISK
3002 GOSUB 4000:INPUT" ╞╔╠┼╬┴═┼";F$:IFP THEN P╥7,F$":"
3010 N=0:OPEN8,8,8,"0:"+F$+",S,W
3012 FOR I=20000 TO 256*160-1:A=PEEK(I):IF A=255 THEN 3022
3014 PRINT#8,MID$(ST╥(A),2):IF P THEN PRINT#7,ST╥(A);
3020 N=N+1:PRINT ST╥(N);:NEXT:STOP
3022 :CLOSE8:PRINT N;I-1:IF P THEN PRINT#7
3024 GOSUB 997:GOTO 100
4000 REM " ╞OR THE PRINTER AND INTERFACE ╔ USE:
4010 PRINT " ╨RINTER ON? ";:GOSUB997: PRINT G$
4012 P=0:IF G$<>"Y" THEN RETURN
4020 P=1:IF P1 THEN RETURN
4021 P1=1:CLOSE5:CLOSE7:OPEN5,4,5: OPEN7,4,7
4030 FOR I=1TO10
4032 PRINT#5,C╚(27)C╚(108)C╚(5):REM LEFT MARGIN=5
4034 PRINT#5,C╚(27)C╚(81)C╚(77): NEXT: REM RIGHT MARGIN=77
4039 PRINT " ╙ET INTERFACE TO ╩UNIOR":GOSUB997:RETURN
8000 REM " ╞ROM DISK TO MEMORY
8002 N=0:M=20000-1:GOSUB4000:INPUT " ╞╔╠┼╬┴═┼";F$:IF P THEN PRINT#7,F$":"
8010 OPEN8,8,8,"0:"+F$+",S,R
8012 :INPUT#8,A:S=ST:M=M+1:POKEM,A:IF P THEN PRINT#7,A;
8013 N=N+1:PRINT N;A;:IF S=0 THEN 8012
8020 :PRINT N;"╠AST M="M-1:CLOSE8:IF P THEN PRINT#7,"╠AST M="M-1
8022 GOSUB997:GOTO100
║JU1
┬┴╙╔├ USES CONSECUTIVE BYTES CONTAINING NOT ONLY THE PROGRAM ITSELF, BUT ALSO ENOUGH SPACE FOR ┬┴╙╔├ TO DEPOSIT CONSTANTS, VARIABLES, ARRAYS AND STRINGS THAT ARE ADDED TO PROGRAM SPACE DURING THE RUNNING, BUT MACHINE LANGUAGE PROGRAMS ARE NOT SO LIMITED, THEY CAN USE ANY AVAILABLE BYTES. ┬┴╙╔├ SPACE, NORMALLY 2049 TO 40957, CAN BE REDUCED, AND THE REMAINDER THEN IS AVAILABLE FOR MACHINE LANGUAGE (M/L) PROGRAMS. ╘HERE IS A LARGE BLOCK, 4096 BYTES, AVAILABLE FOR M/L AT 49152-53247.
╔ USE DISKS FOR STORAGE, SO THAT ALL BYTES IN ╥┴═ SET ASIDE FOR TAPE OPERATIONS MAY ALSO BE FOR M/L, SUCH AS THE 204 BYTES 820-1023 AND THE 23 BYTES 2025 TO 2047. ┴LSO:
╧N PAGE ZERO (BYTES 0-255) 4 BYTES 251-254, AND BYTE 2 ARE ALWAYS AVAILABLE FOR M/L. ╘APE STORAGE USES ON PAGE ZERO 146, 150, 155-156, 158-159, 165-166, 167 (ALSO USED BY ╥╙-232), 176-179, 190-192, 195-196. ╥╙-232 USES ON PAGE ZERO 167 (TAPE USE TOO), 168-171, 180-182, 189, 247-250. ╔N ADDITION, NOT(?) USED, BYTES 3-6 ARE AVAILABLE FOR M/L ON PAGE ZERO.
╘O MAKE A LOT MORE M/L SPACE AVAILABLE IN ╥┴═, ┬┴╙╔├ CAN BE REMOVED COMPLETELY (MAYBE ONLY TEMPORARILY?), AND SO CAN THE COMPUTER'S OPERATING SYSTEM, BUT THEN THE USER WILL HAVE TO SOMEHOW PROVIDE SUBSTITUTES.
╬ORMALLY THE 8192 BYTES 40960-49151 OF ╥┴═ ARE NOT USED, NOR ARE THE 8192 BYTES 57344-65535 OF ╥┴═. ╫HILE IT IS POSSIBLE TO POKE INTO THEM, PEEKING IS DIVERTED TO ╥EAD ╧NLY ═EMORIES (╥╧═) RESIDING IN SEPARATE HARDWARE (CHIPS). ┬YTE 1 CONTAINS SWITCHES THAT CONTROL PEEKING, WHETHER FROM THE NORMAL ╥╧═S OR, IF DESIRED, FROM THEIR UNDERLYING ╥┴═S.
┬EFORE SWITCHING EITHER OF THESE FROM ╥╧═ TO ╥┴═ (IT MAY CAUSE COMPUTER HANG-UP!) IT IS POSSIBLE TO FIRST COPY (WAIT ABOUT 30 SECONDS) INTO ╥┴═ WHATEVER IS IN ╥╧═, THEN SWITCH TO ╥┴═ (AFTER FIRST DISABLING INTERRUPTS?). ╘HIS MAKES IT POSSIBLE TO THEN MAKE CHANGES, WHILE NO CHANGES TO CONTENTS CAN BE MADE WHILE THE ╥╧═ IS IN OPERATION.
F╧I=40960 TO 49151:P╧I,P┼(I):N┼
F╧I=57344 TO 65535:P╧I,P┼(I):N┼
╘O SWITCH FROM ╥╧═ TO ╥┴═ IN RANGE 40960-49151 TYPE: